package com.rnkrsoft.suyan.config.server.ajax.authority;

import com.rnkrsoft.reflection4j.extension.SPI;

import java.util.List;

/**
 * 鉴权器
 */
@SPI("mock")
public interface AuthorityAuthenticator {
    /**
     * 检查是否拥有权限
     * @param authorityContext 权限上下文
     * @return 返回真拥有权限
     */
    boolean hasAuthority(AuthorityContext authorityContext);

    /**
     * 获取当前应用,拥有权限的菜单
     * @param authorityContext 权限上下文
     * @return 返回菜单列表
     */
    List<Menu> menus(AuthorityContext authorityContext);
}
